package youleche.com.idao;

import java.sql.Connection;
import java.util.List;

import youleche.com.model.MVehicleInfo;

/**
 * 车辆信息接口
 * @author Administrator
 *
 */
public interface IVehicleInfo{
	/**
	 * 添加车辆信息
	 * @param con 数据库连接
	 * @param vehicleInfo 车辆信息
	 * @return 返回影响的行数
	 * @throws Exception 异常
	 */
	public int addVehicleInfo(Connection con, MVehicleInfo vehicleInfo) throws Exception;
	
	/**
	 * 通过ID得到车辆
	 * @param con 数据库连接
	 * @param id ID
	 * @return 返回车辆信息
	 * @throws Exception 异常
	 */
	public MVehicleInfo getVehicleInfoById(Connection con, String id) throws Exception;
	
	/**
	 * 通过商家ID得到车辆信息
	 * @param con 数据库连接
	 * @param sellerId ID
	 * @return 返回车辆信息
	 * @throws Exception 异常
	 */
	public List<MVehicleInfo> getVehicleInfoBySellerId(Connection con, String sellerId, String startIndex, String endIndex) throws Exception;
	
	/**
	 * 获取首页基础加载的数据
	 * @param con 数据库连接
	 * @param count 获取的条数
	 * @return 返回车辆信息
	 */
	public List<MVehicleInfo> getVehicleInfoListForHome(Connection con, int count) throws Exception;
	
	/**
	 * 获取分页数据
	 * @param con 数据库连接
	 * @param startIndex 开始索引
	 * @param endIndex 结束索引
	 * @return 返回分页数据
	 * @throws Exception 异常
	 */
	public List<MVehicleInfo> getVehicleInfoList(Connection con, String startIndex, String endIndex) throws Exception;
	
	/**
	 * 判断是否添加了相似的车辆信息（针对同一商户）
	 * @param con 数据库连接
	 * @param vehicleInfo 车辆信息
	 * @return 返回是否添加了相似的车辆信息  相似信息的ID
	 * @throws Exception 异常
	 */
	public String isSimilarityForVehicleInfo(Connection con, MVehicleInfo vehicleInfo) throws Exception;
	
	/**
	 * 通过id获取车辆信息的访问量
	 * @param con 数据库连接
	 * @param id 车辆id
	 * @return 返回访问量
	 * @throws Exception 异常
	 */
	public int getCountById(Connection con, String id) throws Exception;
	
	/**
	 * 通过车辆信息ID更新访问量
	 * @param con 数据库连接
	 * @param id 车辆信息id
	 * @return 返回车辆信息id
	 * @throws Exception 异常
	 */
	public int updateCountById(Connection con, String id, String count) throws Exception;
	
	/**
	 * 获取品牌总数
	 * @param con 数据库连接
	 * @return 返回品牌总数
	 * @throws Exception 异常
	 */
	public int getVehicleNameForCount(Connection con) throws Exception;
	
	/**
	 * 通过ID删除删除车辆信息
	 * @param con 数据库连接
	 * @param id id
	 * @return 返回影响的行数
	 * @throws Exception 异常
	 */
	public int deleteVehicleInfoById(Connection con, String id) throws Exception;
	
	/**
	 * 获取车辆信息总数
	 * @param con 数据库连接
	 * @return 车辆信息总数
	 * @throws Exception 异常
	 */
	public int getCount(Connection con) throws Exception;
	
	/**
	 * 根据商户Id获取发布信息的总数量
	 * @param con 数据库连接
	 * @param sellerId 商户id
	 * @return 返回发布信息的总数量
	 * @throws Exception
	 */
	public int getCountBySellerId(Connection con, String sellerId) throws Exception;
	
	/**
	 * 搜索获取分页数据
	 * @param con 数据库连接
	 * @param startIndex 开始索引
	 * @param endIndex 结束索引
	 * @param condition 搜索条件
	 * @return 返回分页数据
	 * @throws Exception 异常
	 */
	public List<MVehicleInfo> getVehicleInfoListBySearch(Connection con, String startIndex, String endIndex, String condition) throws Exception;
	
	/**
	 * 更新车辆信息的首页图片地址
	 * @param con 数据库连接
	 * @param imageId 图片id
	 * @param vehicleId 车辆id
	 * @return 返回更新影响的行数
	 * @throws Exception 异常
	 */
	public int updateImageIdByVehicleId(Connection con, String imageId, String vehicleId) throws Exception;
	
	/**
	 * 用户置顶车辆报价信息
	 * @param con 数据库连接
	 * @param vehicleId 车辆ID
	 * @return 返回影响的行数
	 * @throws Exception
	 */
	public int topVehicleInfoById(Connection con, String vehicleId) throws Exception;
	
	/**
	 * 更新车辆信息
	 * @param con 数据库连接
	 * @param vechileInfo 车辆信息
	 * @return 返回更新影响的行数
	 * @throws Exception 异常
	 */
	public int updateVehicleInfoById(Connection con, MVehicleInfo vechileInfo) throws Exception;
	
	/**
	 * 得到该商户今天发布报价信息的条数
	 * @param con 数据库连接
	 * @param sellerId 商户ID
	 * @return 返回报价信息条数
	 * @throws Exception 异常
	 */
	public String getVehicleInfoCountForTodayBySellerId(Connection con, String sellerId) throws Exception;

}